#include<iostream>
using namespace std;

/*
右值引用只能绑定到即将销毁的对象上
int a=0;
int &&i=a+1;
*/


/*
int a=0;
int &&k=++a;悲惨，前置++运算符返回左值对象
*/


/*更加悲惨，后置++运算符返回右值
int a=0;
int &&k=a++;	
*/

/*右值短暂，一般指向即将销毁的对象
  左值持久，左值着重指出地址*/


/*蛋疼，所有的变量语句全部是左值，这意味着右值引用不能绑定到
 * 右值引用语句上。左值引用则没有这个限制。
int a=0;
int && k=a+1;
int && s=k; error
*/

/*
 *右值引用引起了一堆问题
 *
 */


/*
 *移动构造函数移动赋值运算符
 */


/*
 *只有一个类没有定义任何自己的拷贝控制成员且所有的数据成员
 *都能移动构造或者移动赋值的时候，编译器才会合成。
 */


/*合成的条件*/
int main(){
}
